[INFO] fetching crate nanobook-broker 0.7.1...
[INFO] fixing nanobook-broker-0.7.1 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=start=2015 for pr-157817-2
[INFO] extracting crate nanobook-broker 0.7.1 into /workspace/builds/worker-7-tc1/source
[INFO] started tweaking crates.io crate nanobook-broker 0.7.1
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate nanobook-broker 0.7.1
[INFO] tweaked toml for crates.io crate nanobook-broker 0.7.1 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate nanobook-broker 0.7.1 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate nanobook-broker 0.7.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded serde-xml-rs v0.5.1
[INFO] [stderr]   Downloaded parse-zoneinfo v0.3.1
[INFO] [stderr]   Downloaded ibapi v2.11.4
[INFO] [stderr]   Downloaded time-tz v2.0.0
[INFO] [stderr]   Downloaded nanobook v0.16.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] abfaac609ef1777903d352c21464b4d26809c5d0ef6f076b3f7773725c561736
[INFO] running `Command { std: "docker" "start" "abfaac609ef1777903d352c21464b4d26809c5d0ef6f076b3f7773725c561736", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "abfaac609ef1777903d352c21464b4d26809c5d0ef6f076b3f7773725c561736" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "abfaac609ef1777903d352c21464b4d26809c5d0ef6f076b3f7773725c561736", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "abfaac609ef1777903d352c21464b4d26809c5d0ef6f076b3f7773725c561736" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=start=2015", kill_on_drop: false }`
[INFO] [stderr]     Checking typenum v1.20.0
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]     Checking percent-encoding v2.3.2
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking data-encoding v2.11.0
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.6
[INFO] [stderr]     Checking tokio v1.52.3
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]     Checking zerofrom v0.1.8
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking yoke v0.8.2
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking nanobook v0.16.2
[INFO] [stderr]     Checking nanobook-broker v0.7.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking tungstenite v0.21.0
[INFO] [stderr]     Checking tokio-tungstenite v0.21.0
[INFO] [stdout] warning: fields `test_case` and `divergences` are never read
[INFO] [stdout]   --> tests/validate_mock_vs_paper.rs:61:5
[INFO] [stdout]    |
[INFO] [stdout] 60 | struct ValidationResult {
[INFO] [stdout]    |        ---------------- fields in this struct
[INFO] [stdout] 61 |     test_case: String,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 62 |     passed: bool,
[INFO] [stdout] 63 |     divergences: Vec<Divergence>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ValidationResult` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `results` is never read
[INFO] [stdout]   --> tests/validate_mock_vs_paper.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 67 | struct ValidationContext {
[INFO] [stdout]    |        ----------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 71 |     results: Vec<ValidationResult>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_divergence` and `clear_callbacks` are never used
[INFO] [stdout]   --> tests/validate_mock_vs_paper.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl ValidationContext {
[INFO] [stdout]    | ---------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 92 |     fn add_divergence(&mut self, divergence: Divergence) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     fn clear_callbacks(&mut self) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> tests/mock_tws.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum FailureMode {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 12 |     /// F1: Duplicate order-status callback injection
[INFO] [stdout] 13 |     F1DuplicateStatus,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     /// F2: Cancel reject race with fill
[INFO] [stdout] 15 |     F2CancelRejectRace,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     F4StaleMarketData,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     /// F5: Clock skew detection
[INFO] [stdout] 21 |     F5ClockSkew,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 22 |     /// F6: TWS reconnect drill
[INFO] [stdout] 23 |     F6ReconnectDrill,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 24 |     /// F7: Cron double-fire idempotency
[INFO] [stdout] 25 |     F7CronDoubleFire,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 26 |     /// F8: Kill switch subcommand
[INFO] [stdout] 27 |     F8KillSwitch,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 28 |     /// F9: Process crash + warm restart
[INFO] [stdout] 29 |     F9ProcessCrash,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FailureMode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `symbol` is never read
[INFO] [stdout]   --> tests/mock_tws.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct OrderState {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 48 |     pub id: u64,
[INFO] [stdout] 49 |     pub symbol: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OrderState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> tests/mock_tws.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl MockTws {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn clear_failure(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn order_status(&self, order_id: u64) -> Result<OrderState, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 226 |     pub fn callbacks(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn clear_callbacks(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn was_disconnect_injected(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn simulate_reconnect(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     pub fn simulate_partial_fill(&self, order_id: u64, fill_quantity: u64) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     pub fn get_order(&self, order_id: u64) -> Option<OrderState> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 279 |     pub fn all_orders(&self) -> Vec<OrderState> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> tests/mock_tws.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum FailureMode {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 12 |     /// F1: Duplicate order-status callback injection
[INFO] [stdout] 13 |     F1DuplicateStatus,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     /// F2: Cancel reject race with fill
[INFO] [stdout] 15 |     F2CancelRejectRace,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     /// F3: Partial fill followed by disconnect
[INFO] [stdout] 17 |     F3PartialFillDisconnect,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 18 |     /// F4: Stale market data detection
[INFO] [stdout] 19 |     F4StaleMarketData,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     /// F5: Clock skew detection
[INFO] [stdout] 21 |     F5ClockSkew,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 22 |     /// F6: TWS reconnect drill
[INFO] [stdout] 23 |     F6ReconnectDrill,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 24 |     /// F7: Cron double-fire idempotency
[INFO] [stdout] 25 |     F7CronDoubleFire,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 26 |     /// F8: Kill switch subcommand
[INFO] [stdout] 27 |     F8KillSwitch,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 28 |     /// F9: Process crash + warm restart
[INFO] [stdout] 29 |     F9ProcessCrash,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FailureMode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `MidFill` is never constructed
[INFO] [stdout]   --> tests/mock_tws.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub enum FailureTiming {
[INFO] [stdout]    |          ------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 40 |     MidFill,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FailureTiming` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> tests/mock_tws.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl MockTws {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  92 |     pub fn disconnect(&self) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn inject_failure(&self, mode: FailureMode, timing: FailureTiming) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn clear_failure(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn order_status(&self, order_id: u64) -> Result<OrderState, String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn fill_order(&self, order_id: u64, fill_quantity: u64) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn cancel_order(&self, order_id: u64) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn clear_callbacks(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn was_disconnect_injected(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> tests/mock_tws.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum FailureMode {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] 12 |     /// F1: Duplicate order-status callback injection
[INFO] [stdout] 13 |     F1DuplicateStatus,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 14 |     /// F2: Cancel reject race with fill
[INFO] [stdout] 15 |     F2CancelRejectRace,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 16 |     /// F3: Partial fill followed by disconnect
[INFO] [stdout] 17 |     F3PartialFillDisconnect,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 18 |     /// F4: Stale market data detection
[INFO] [stdout] 19 |     F4StaleMarketData,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     /// F5: Clock skew detection
[INFO] [stdout] 21 |     F5ClockSkew,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 22 |     /// F6: TWS reconnect drill
[INFO] [stdout] 23 |     F6ReconnectDrill,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 24 |     /// F7: Cron double-fire idempotency
[INFO] [stdout] 25 |     F7CronDoubleFire,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 26 |     /// F8: Kill switch subcommand
[INFO] [stdout] 27 |     F8KillSwitch,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 28 |     /// F9: Process crash + warm restart
[INFO] [stdout] 29 |     F9ProcessCrash,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FailureMode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `symbol` is never read
[INFO] [stdout]   --> tests/mock_tws.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct OrderState {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 48 |     pub id: u64,
[INFO] [stdout] 49 |     pub symbol: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OrderState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> tests/mock_tws.rs:104:12
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl MockTws {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 104 |     pub fn inject_failure(&self, mode: FailureMode, timing: FailureTiming) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn clear_failure(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     pub fn clear_callbacks(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 236 |     pub fn was_disconnect_injected(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn simulate_reconnect(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     pub fn simulate_partial_fill(&self, order_id: u64, fill_quantity: u64) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     pub fn get_order(&self, order_id: u64) -> Option<OrderState> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 279 |     pub fn all_orders(&self) -> Vec<OrderState> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `symbol` is never read
[INFO] [stdout]   --> tests/mock_tws.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct OrderState {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 48 |     pub id: u64,
[INFO] [stdout] 49 |     pub symbol: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OrderState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `cancel_order`, `simulate_reconnect`, `simulate_partial_fill`, `get_order`, and `all_orders` are never used
[INFO] [stdout]    --> tests/mock_tws.rs:211:12
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl MockTws {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn cancel_order(&self, order_id: u64) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn simulate_reconnect(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 253 |     pub fn simulate_partial_fill(&self, order_id: u64, fill_quantity: u64) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     pub fn get_order(&self, order_id: u64) -> Option<OrderState> {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 279 |     pub fn all_orders(&self) -> Vec<OrderState> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sequence_number`
[INFO] [stdout]    --> tests/mock_binance.rs:383:13
[INFO] [stdout]     |
[INFO] [stdout] 383 |         let sequence_number = client_order_id
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sequence_number`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sequence_number`
[INFO] [stdout]    --> tests/mock_binance.rs:383:13
[INFO] [stdout]     |
[INFO] [stdout] 383 |         let sequence_number = client_order_id
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sequence_number`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `price` is never read
[INFO] [stdout]   --> tests/mock_binance.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub struct MockOrder {
[INFO] [stdout]    |            --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub price: Option<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MockOrder` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `simulate_websocket_disconnect`, `simulate_websocket_reconnect`, `is_websocket_disconnected`, and `simulate_partial_fill` are never used
[INFO] [stdout]    --> tests/mock_binance.rs:148:12
[INFO] [stdout]     |
[INFO] [stdout]  65 | impl MockBinance {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 148 |     pub fn simulate_websocket_disconnect(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 |     pub fn simulate_websocket_reconnect(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 158 |     pub fn is_websocket_disconnected(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn simulate_partial_fill(&self, order_id: &str) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `audit_log_path` is never read
[INFO] [stdout]    --> tests/mock_binance.rs:286:5
[INFO] [stdout]     |
[INFO] [stdout] 279 | pub struct MockBroker {
[INFO] [stdout]     |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 286 |     audit_log_path: Option<PathBuf>,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `with_account` and `with_audit_log_path` are never used
[INFO] [stdout]    --> tests/mock_binance.rs:314:12
[INFO] [stdout]     |
[INFO] [stdout] 289 | impl MockBroker {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub fn with_account(mut self, account: Account) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 326 |     pub fn with_audit_log_path(mut self, path: PathBuf) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `nanobook_broker::binance`
[INFO] [stdout]   --> tests/binance_audit_idempotency.rs:6:22
[INFO] [stdout]    |
[INFO] [stdout]  6 | use nanobook_broker::binance::{BinanceBroker, log_idempotency_rejection, log_order_submitted};
[INFO] [stdout]    |                      ^^^^^^^ could not find `binance` in `nanobook_broker`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> src/lib.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | #[cfg(feature = "binance")]
[INFO] [stdout]    |       ------------------- the item is gated behind the `binance` feature
[INFO] [stdout] 23 | pub mod binance;
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `nanobook_broker::binance`
[INFO] [stdout]   --> tests/binance_audit_idempotency.rs:51:26
[INFO] [stdout]    |
[INFO] [stdout] 51 |     use nanobook_broker::binance::{check_audit_log_for_sequence, log_order_submitted};
[INFO] [stdout]    |                          ^^^^^^^ could not find `binance` in `nanobook_broker`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> src/lib.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | #[cfg(feature = "binance")]
[INFO] [stdout]    |       ------------------- the item is gated behind the `binance` feature
[INFO] [stdout] 23 | pub mod binance;
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `nanobook_broker::binance`
[INFO] [stdout]   --> tests/binance_audit_idempotency.rs:72:26
[INFO] [stdout]    |
[INFO] [stdout] 72 |     use nanobook_broker::binance::check_audit_log_for_sequence;
[INFO] [stdout]    |                          ^^^^^^^ could not find `binance` in `nanobook_broker`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> src/lib.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | #[cfg(feature = "binance")]
[INFO] [stdout]    |       ------------------- the item is gated behind the `binance` feature
[INFO] [stdout] 23 | pub mod binance;
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `nanobook_broker::binance`
[INFO] [stdout]   --> tests/binance_audit_idempotency.rs:83:26
[INFO] [stdout]    |
[INFO] [stdout] 83 |     use nanobook_broker::binance::log_order_submitted;
[INFO] [stdout]    |                          ^^^^^^^ could not find `binance` in `nanobook_broker`
[INFO] [stdout]    |
[INFO] [stdout] note: found an item that was configured out
[INFO] [stdout]   --> src/lib.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | #[cfg(feature = "binance")]
[INFO] [stdout]    |       ------------------- the item is gated behind the `binance` feature
[INFO] [stdout] 23 | pub mod binance;
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `nanobook-broker` (test "binance_audit_idempotency") due to 4 previous errors
[INFO] running `Command { std: "docker" "inspect" "abfaac609ef1777903d352c21464b4d26809c5d0ef6f076b3f7773725c561736", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "abfaac609ef1777903d352c21464b4d26809c5d0ef6f076b3f7773725c561736", kill_on_drop: false }`
[INFO] [stdout] abfaac609ef1777903d352c21464b4d26809c5d0ef6f076b3f7773725c561736
